/**
 * date -> string
 * @param expr    表达式
 * @param date    日期
 * @returns {*}
 */
import {parseDate} from "./parseDate";

function formatDate(expr, date) {
  date = parseDate(date);
  let o = {
    "ms": date.getMilliseconds(), // 毫秒
    "md": new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate(), // 当月最后一天 MaxDay
    "M+": date.getMonth() + 1, // 月份
    "d+": date.getDate(), // 日
    "H+": date.getHours(), // 小时
    "m+": date.getMinutes(), // 分
    "s+": date.getSeconds(), // 秒
    "q+": Math.floor((date.getMonth() + 3) / 3) // 季度
  }
  if (/(y+)/.test(expr)) {
    expr = expr.replace(RegExp.$1, (date.getFullYear() + "").substr(4 - RegExp.$1.length));
  }
  for (let k in o) {
    if (new RegExp("(" + k + ")").test(expr)) {
      expr = expr.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
    }
  }
  return expr;
}

export {formatDate}
